First, whitelist the parts of `rack.env` required to identify the current user in `ActionController::Renderer` ([more information](http://blog.bigbinary.com/2016/01/08/rendering-views-outside-of-controllers-in-rails-5.html)). If you use Devise, the key that you need to whitelist is `warden`:

```ruby
# config/initializers/application_controller_renderer.rb
ActionController::Renderer::RACK_KEY_TRANSLATION['warden'] ||= 'warden'
```

Now you can render any Thredded partial using `Thredded::ApplicationController.renderer`. For example:

```ruby
<%= Thredded::ApplicationController.renderer.new(request.env.slice('warden'))
      .render(partial: 'thredded/shared/nav') %>
```

If you do it in several places, define a helper method:

```ruby
# Render in the context of the Thredded engine
# @return [String]
def thredded_render(*args, **kwargs, &block)
  @_thredded_renderer ||= Thredded::ApplicationController.renderer.new(request.env.slice('warden'))
  @_thredded_renderer.render(*args, **kwargs, &block)
end
```

Folks on rails 4 need to include the [backport_new_renderer](https://github.com/brainopia/backport_new_renderer) for this method to work.